/*
 * Enum.h
 *
 *  Created on: 2011/06/23
 *      Author: naoki
 */

#ifndef INCLUDED_NTENGINE_GRAPHICS_ENUM_H
#define INCLUDED_NTENGINE_GRAPHICS_ENUM_H

namespace NTEngine {
namespace Graphics {

/**
 * @brief ブレンドモード
 */
enum BlendMode {
	BLEND_OPAQUE, /// そのまま
	BLEND_LINEAR, /// 線形合成
	BLEND_ADDITIVE, /// 加算合成
};

/**
 * @brief カリングモード
 */
enum CullMode {
	CULL_NONE, /// カリングしない
	CULL_FRONT, /// 表面をカリングする
	CULL_BACK, /// 裏面をカリングする

	CULL_MAX,
};

/**
 * @brief テクスチャフィルタ
 */
enum TextureFilter {
	TEXTURE_FILTER_POINT, /// そのまま
	TEXTURE_FILTER_LINEAR, /// 線形補正
};

/**
 * @brief プリミティブ描画方法
 */
enum PrimitiveType {
	PRIMITIVE_TRIANGLE, /// 三角形リスト
	PRIMITIVE_TRIANGLE_STRIP, /// 三角形ストライプ
	PRIMITIVE_LINE, /// 線
	PRIMITIVE_POINT, /// 点
};

/**
 * @brief シェーダのライティングモード
 */
enum LightingMode {
	LIGHTING_NONE, /// ライティングなし
	LIGHTING_PER_VERTEX, /// 頂点ベースライティング
	LIGHTING_PER_PIXEL, /// ピクセルベースライティング
};

} // namespace Graphics
} // namespace NTEngine

#endif // INCLUDED_NTENGINE_GRAPHICS_ENUM_H
